nethackfandomcom-20200214-history
Source:Wintty.h
Below is the full text to include/wintty.h from NetHack 3.4.3. To link to a particular line, write [[wintty.h#line123]], for example. 1. /* SCCS Id: @(#)wintty.h 3.4 1996/02/18 */ 2. /* Copyright © David Cohrs, 1991,1992 */ 3. /* NetHack may be freely redistributed. See license for details. */ 4. 5. #ifndef WINTTY_H 6. #define WINTTY_H 7. 8. #define E extern 9. 10. #ifndef WINDOW_STRUCTS 11. #define WINDOW_STRUCTS 12. 13. /* menu structure */ 14. typedef struct tty_mi { 15. struct tty_mi *next; 16. anything identifier; /* user identifier */ 17. long count; /* user count */ 18. char *str; /* description string (including accelerator) */ 19. int attr; /* string attribute */ 20. boolean selected; /* TRUE if selected by user */ 21. char selector; /* keyboard accelerator */ 22. char gselector; /* group accelerator */ 23. } tty_menu_item; 24. 25. /* descriptor for tty-based windows */ 26. struct WinDesc { 27. int flags; /* window flags */ 28. xchar type; /* type of window */ 29. boolean active; /* true if window is active */ 30. uchar offx, offy; /* offset from topleft of display */ 31. short rows, cols; /* dimensions */ 32. short curx, cury; /* current cursor position */ 33. short maxrow, maxcol; /* the maximum size used -- for MENU wins */ 34. /* maxcol is also used by WIN_MESSAGE for */ 35. /* tracking the ^P command */ 36. short *datlen; /* allocation size for *data */ 37. char **data; /* window data rowcolumn */ 38. char *morestr; /* string to display instead of default */ 39. tty_menu_item *mlist; /* menu information (MENU) */ 40. tty_menu_item **plist; /* menu page pointers (MENU) */ 41. short plist_size; /* size of allocated plist (MENU) */ 42. short npages; /* number of pages in menu (MENU) */ 43. short nitems; /* total number of items (MENU) */ 44. short how; /* menu mode - pick 1 or N (MENU) */ 45. char menu_ch; /* menu char (MENU) */ 46. }; 47. 48. /* window flags */ 49. #define WIN_CANCELLED 1 50. #define WIN_STOP 1 /* for NHW_MESSAGE; stops output */ 51. 52. /* descriptor for tty-based displays -- all the per-display data */ 53. struct DisplayDesc { 54. uchar rows, cols; /* width and height of tty display */ 55. uchar curx, cury; /* current cursor position on the screen */ 56. #ifdef TEXTCOLOR 57. int color; /* current color */ 58. #endif 59. int attrs; /* attributes in effect */ 60. int toplin; /* flag for topl stuff */ 61. int rawprint; /* number of raw_printed lines since synch */ 62. int inmore; /* non-zero if more() is active */ 63. int inread; /* non-zero if reading a character */ 64. int intr; /* non-zero if inread was interrupted */ 65. winid lastwin; /* last window used for I/O */ 66. char dismiss_more; /* extra character accepted at --More-- */ 67. }; 68. 69. #endif /* WINDOW_STRUCTS */ 70. 71. #define MAXWIN 20 /* maximum number of windows, cop-out */ 72. 73. /* tty dependent window types */ 74. #ifdef NHW_BASE 75. #undef NHW_BASE 76. #endif 77. #define NHW_BASE 6 78. 79. extern struct window_procs tty_procs; 80. 81. /* port specific variable declarations */ 82. extern winid BASE_WINDOW; 83. 84. extern struct WinDesc *winsMAXWIN; 85. 86. extern struct DisplayDesc *ttyDisplay; /* the tty display descriptor */ 87. 88. extern char morc; /* last character typed to xwaitforspace */ 89. extern char defmorestr[]; /* default --more-- prompt */ 90. 91. /* port specific external function references */ 92. 93. /* ### getline.c ### */ 94. E void FDECL(xwaitforspace, (const char *)); 95. 96. /* ### termcap.c, video.c ### */ 97. 98. E void FDECL(tty_startup,(int*, int*)); 99. #ifndef NO_TERMS 100. E void NDECL(tty_shutdown); 101. #endif 102. #if defined(apollo) 103. /* Apollos don't widen old-style function definitions properly -- they try to 104. * be smart and use the prototype, or some such strangeness. So we have to 105. * define UNWIDENDED_PROTOTYPES (in tradstdc.h), which makes CHAR_P below a 106. * char. But the tputs termcap call was compiled as if xputc's argument 107. * actually would be expanded. So here, we have to make an exception. */ 108. E void FDECL(xputc, (int)); 109. #else 110. E void FDECL(xputc, (CHAR_P)); 111. #endif 112. E void FDECL(xputs, (const char *)); 113. #if defined(SCREEN_VGA) || defined(SCREEN_8514) 114. E void FDECL(xputg, (int, int, unsigned)); 115. #endif 116. E void NDECL(cl_end); 117. E void NDECL(clear_screen); 118. E void NDECL(home); 119. E void NDECL(standoutbeg); 120. E void NDECL(standoutend); 121. # if 0 122. E void NDECL(revbeg); 123. E void NDECL(boldbeg); 124. E void NDECL(blinkbeg); 125. E void NDECL(dimbeg); 126. E void NDECL(m_end); 127. # endif 128. E void NDECL(backsp); 129. E void NDECL(graph_on); 130. E void NDECL(graph_off); 131. E void NDECL(cl_eos); 132. 133. /* 134. * termcap.c (or facsimiles in other ports) is the right place for doing 135. * strange and arcane things such as outputting escape sequences to select 136. * a color or whatever. wintty.c should concern itself with WHERE to put 137. * stuff in a window. 138. */ 139. E void FDECL(term_start_attr,(int attr)); 140. E void FDECL(term_end_attr,(int attr)); 141. E void NDECL(term_start_raw_bold); 142. E void NDECL(term_end_raw_bold); 143. 144. #ifdef TEXTCOLOR 145. E void NDECL(term_end_color); 146. E void FDECL(term_start_color,(int color)); 147. E int FDECL(has_color,(int color)); 148. #endif /* TEXTCOLOR */ 149. 150. 151. /* ### topl.c ### */ 152. 153. E void FDECL(addtopl, (const char *)); 154. E void NDECL(more); 155. E void FDECL(update_topl, (const char *)); 156. E void FDECL(putsyms, (const char*)); 157. 158. /* ### wintty.c ### */ 159. #ifdef CLIPPING 160. E void NDECL(setclipped); 161. #endif 162. E void FDECL(docorner, (int, int)); 163. E void NDECL(end_glyphout); 164. E void FDECL(g_putch, (int)); 165. E void NDECL(win_tty_init); 166. 167. /* external declarations */ 168. E void FDECL(tty_init_nhwindows, (int *, char **)); 169. E void NDECL(tty_player_selection); 170. E void NDECL(tty_askname); 171. E void NDECL(tty_get_nh_event) ; 172. E void FDECL(tty_exit_nhwindows, (const char *)); 173. E void FDECL(tty_suspend_nhwindows, (const char *)); 174. E void NDECL(tty_resume_nhwindows); 175. E winid FDECL(tty_create_nhwindow, (int)); 176. E void FDECL(tty_clear_nhwindow, (winid)); 177. E void FDECL(tty_display_nhwindow, (winid, BOOLEAN_P)); 178. E void FDECL(tty_dismiss_nhwindow, (winid)); 179. E void FDECL(tty_destroy_nhwindow, (winid)); 180. E void FDECL(tty_curs, (winid,int,int)); 181. E void FDECL(tty_putstr, (winid, int, const char *)); 182. E void FDECL(tty_display_file, (const char *, BOOLEAN_P)); 183. E void FDECL(tty_start_menu, (winid)); 184. E void FDECL(tty_add_menu, (winid,int,const ANY_P *, 185. CHAR_P,CHAR_P,int,const char *, BOOLEAN_P)); 186. E void FDECL(tty_end_menu, (winid, const char *)); 187. E int FDECL(tty_select_menu, (winid, int, MENU_ITEM_P **)); 188. E char FDECL(tty_message_menu, (CHAR_P,int,const char *)); 189. E void NDECL(tty_update_inventory); 190. E void NDECL(tty_mark_synch); 191. E void NDECL(tty_wait_synch); 192. #ifdef CLIPPING 193. E void FDECL(tty_cliparound, (int, int)); 194. #endif 195. #ifdef POSITIONBAR 196. E void FDECL(tty_update_positionbar, (char *)); 197. #endif 198. E void FDECL(tty_print_glyph, (winid,XCHAR_P,XCHAR_P,int)); 199. E void FDECL(tty_raw_print, (const char *)); 200. E void FDECL(tty_raw_print_bold, (const char *)); 201. E int NDECL(tty_nhgetch); 202. E int FDECL(tty_nh_poskey, (int *, int *, int *)); 203. E void NDECL(tty_nhbell); 204. E int NDECL(tty_doprev_message); 205. E char FDECL(tty_yn_function, (const char *, const char *, CHAR_P)); 206. E void FDECL(tty_getlin, (const char *,char *)); 207. E int NDECL(tty_get_ext_cmd); 208. E void FDECL(tty_number_pad, (int)); 209. E void NDECL(tty_delay_output); 210. #ifdef CHANGE_COLOR 211. E void FDECL(tty_change_color,(int color,long rgb,int reverse)); 212. #ifdef MAC 213. E void FDECL(tty_change_background,(int white_or_black)); 214. E short FDECL(set_tty_font_name, (winid, char *)); 215. #endif 216. E char * NDECL(tty_get_color_string); 217. #endif 218. 219. /* other defs that really should go away (they're tty specific) */ 220. E void NDECL(tty_start_screen); 221. E void NDECL(tty_end_screen); 222. 223. E void FDECL(genl_outrip, (winid,int)); 224. 225. #ifdef NO_TERMS 226. # ifdef MAC 227. # ifdef putchar 228. # undef putchar 229. # undef putc 230. # endif 231. # define putchar term_putc 232. # define fflush term_flush 233. # define puts term_puts 234. E int FDECL(term_putc, (int c)); 235. E int FDECL(term_flush, (void *desc)); 236. E int FDECL(term_puts, (const char *str)); 237. # endif /* MAC */ 238. # if defined(MSDOS) || defined(WIN32CON) 239. # if defined(SCREEN_BIOS) || defined(SCREEN_DJGPPFAST) || defined(WIN32CON) 240. # undef putchar 241. # undef putc 242. # undef puts 243. # define putchar(x) xputc(x) /* these are in video.c, nttty.c */ 244. # define putc(x) xputc(x) 245. # define puts(x) xputs(x) 246. # endif/*SCREEN_BIOS || SCREEN_DJGPPFAST || WIN32CON */ 247. # ifdef POSITIONBAR 248. E void FDECL(video_update_positionbar, (char *)); 249. # endif 250. # endif/*MSDOS*/ 251. #endif/*NO_TERMS*/ 252. 253. #undef E 254. 255. #endif /* WINTTY_H */ Category:source code